package com.ruicar.afs.cloud.manage.outer.api.insurance.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruicar.afs.cloud.common.core.entity.BaseEntity;
import com.ruicar.afs.cloud.common.modules.contract.enums.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author xudongdong
 * @date 2020-06-12
 */

@Data
public class ManageInsuranceInfoClone extends BaseEntity<ManageInsuranceInfoClone> {
    /** 渠道id */
    @ApiModelProperty("渠道id")
    @JsonSerialize(using = ToStringSerializer.class)
    @JSONField(serializeUsing = com.alibaba.fastjson.serializer.ToStringSerializer.class)
    private Long channelId;
    /** 合同编号 */
    @ApiModelProperty("合同编号")
    private String contractNo;
    /** 申请编号 */
    @ApiModelProperty("申请编号")
    private String applyNo;
    /** 案件编号 */
    @ApiModelProperty("案件编号")
    private String caseNo;
    /** 车辆编号 */
    @ApiModelProperty("车辆编号")
    @JsonSerialize(using = ToStringSerializer.class)
    @JSONField(serializeUsing = com.alibaba.fastjson.serializer.ToStringSerializer.class)
    private Long carId;
    /** 数据来源;枚举值：CMS、多品系统 */
    @ApiModelProperty("数据来源")
    private DataSourceEnum dataSource;
    /** 业务类型;枚举值：1-保险理赔，2-保险续保，3-保险批改，4-保险退保 */
    @ApiModelProperty("业务类型")
    private InsuranceBusinessTypeEnum type;
    /** 保险续保信息;保险续保信息，存json */
    @ApiModelProperty("保险续保信息")
    private String insureType;
    /** 报案号 */
    @ApiModelProperty("报案号")
    private String reportNum;
    /** 出险日期 */
    @ApiModelProperty("出险日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format="yyyy-MM-dd")
    private Date riskDate;
    /** 经销商电话 */
    @ApiModelProperty("经销商电话")
    private String dealerPhone;
    /** 理赔金额 ;0.5万以下，0.5万-1万，1万-2万，2万-5万，5万-10万，10万以上 */
    @ApiModelProperty("理赔金额")
    private String claimAmount;
    /** 资产损失*/
    @ApiModelProperty("资产损失")
    private BigDecimal assetsLoss;
    /** 风险意见 */
    @ApiModelProperty("风险意见")
    private String riskOpinion;
    /** 责任占比;全，主，间，次，无 */
    @ApiModelProperty("责任占比")
    private String dutyRation;
    /** 借款人伤情;无，有，亡 */
    @ApiModelProperty("借款人伤情")
    private String lenderHurt;
    /** 赔偿款类型;全部，第三者部分 */
    @ApiModelProperty("赔偿款类型")
    private String reparationType;
    /** 理赔比率 */
    @ApiModelProperty("理赔比率")
    private Double claimRatio;
    /** 车辆受损情况;非全损，全损，被盗，被抢 */
    @ApiModelProperty("车辆受损情况")
    private String carLossState;
    /** 支付目标账户 */
    @ApiModelProperty("支付目标账户")
    private String payTargetAccount;
    /** 支付金额 */
    @ApiModelProperty("支付金额")
    private BigDecimal paymentAmount;
    /** 授权内容 */
    @ApiModelProperty("授权内容")
    private String licensedContent;
    /** 退保原因 */
    @ApiModelProperty("退保原因")
    private String reasonsSurrender;
    /** 批改原因 */
    @ApiModelProperty("批改原因")
    private String reasonCorrection;
    /** 备注 */
    @ApiModelProperty("备注")
    private String remarks;
    /** 是否邮寄授权书原件 */
    @ApiModelProperty("是否邮寄授权书原件")
    private Boolean isSend;
    /** 收件人 */
    @ApiModelProperty("收件人")
    private String consignee;
    /** 收件人电话 */
    @ApiModelProperty("收件人电话")
    private String consigneePhone;
    /** 收件地址 */
    @ApiModelProperty("收件地址-省份")
    private String consigneeProvince;
    /** 收件地址 */
    @ApiModelProperty("收件地址-城市")
    private String consigneeCity;
    /** 收件地址 */
    @ApiModelProperty("收件地址")
    private String consigneeAddress;
    /** 快递公司 */
    @ApiModelProperty("快递公司")
    private String trackingCompany;
    /** 快递单号 */
    @ApiModelProperty("快递单号")
    private String trackingNo;
    /** 申请时间 */
    @ApiModelProperty("申请时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date applyDate;
    /** 结束日期 */
    @ApiModelProperty("结束日期")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date endDate;
    /** 处理状态 */
    @ApiModelProperty("处理状态")
    private ProcessStatusEnum processStatus;
    /** 客户姓名 */
    @ApiModelProperty("客户姓名")
    private String custName;
    /** 客户身份证号码 */
    @ApiModelProperty("客户身份证号码")
    private String certNo;
    /** 逾期天数 */
    @ApiModelProperty("逾期天数")
    private Integer currentAbsoluteOverdue;
    /** 合同状态;枚举值：合同取消、合同生效、正常结清、提前结清、核销 */
    @ApiModelProperty("合同状态")
    private ContractStatusEnum contractStatus;
    /** 合作商全称 */
    @ApiModelProperty("合作商全称")
    private String channelFullName;
    /** 渠道归属 */
    @ApiModelProperty("渠道归属")
    private String channelBelong;
    /** 业务来源;微信、合作商、业务人员 */
    @ApiModelProperty("业务来源")
    private BusinessSourceEnum businessSource;
    /** 业务类型;新车、二手车 */
    @ApiModelProperty("业务类型")
    private String businessType;
    /** 商业险保单号 */
    @ApiModelProperty("商业险保单号")
    private String insureNumCom;
    /**节点名称*/
    @ApiModelProperty("节点名称")
    private String taskName;
    /**派单时间*/
    @ApiModelProperty("派单时间")
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JSONField(format="yyyy-MM-dd")
    private Date dispatchTime;
    /** 处理人员 */
    @ApiModelProperty("处理人员")
    private String processPerson;
    /** 申请人 */
    @ApiModelProperty("申请人")
    private String applyBy;
}
